前面的章節可以建議使用線上IDE進行練習與熟悉。
線上 Go IDE的網址在下方
無論是從終端機touch或是用goland新增,請產生一個名為hello.go的檔案並輸入以下內容:
package main
import "fmt"
func main() {
	fmt.Println("Hello World")
}
對於簡短的程式碼,可用go run指令執行!
go run hello.go
Hello World
較為複雜的程式碼,則需要先進行指令編譯成執行檔在執行:
go build hello.go
$ ./hello
Hello World
我們再重新看一次程式碼,並配合註解服用:
// Set current package
package main
// Import some package
import "fmt"
// Enter main function
func main() {
	// Print out string "Hello World" on stand output.
	fmt.Println("Hello World")
}
下方我們將原本的 Hello World 程式改寫如下:
// Set current package
package main
// Import some package
import "fmt"
// Enter main function
func main() {
	sayHello()
}
// Write down Hello World function
func sayHello() {
	// Print out string "Hello World" on stand output.
	fmt.Println("Hello World")
}
我們找到Println的說明(command + 左鍵點選指定函式),可以看到Println的公開介面如下:
func Println(a ...interface{}) (n int, err error) {
	return Fprintln(os.Stdout, a...)
}
由這個公開界面可知,Println接收任意數量的參數,參數為任意型別 (interface{})。該函式會回傳兩個參數,分別是整數 n 和 err 物件。n 表示寫入的字串長度而 err 回傳錯誤物件,當程式沒有發生錯誤時,err 為空值nil。
我們的範例程式中,我們知道程式不會發生錯誤,而且也不需要知道字串的長度,故我們忽略程式的回傳值。
專案(Project)可以由N個包(Package)組成包(Package)可以有N支程式(.go file)
包(Package)底下的程式(.go file)彼此全域變數及函式可以互見,就像在同一支程式裡一樣包(Package)的名稱 為包所在的資料夾名稱
程式(.go fle)只能屬於一個包(Package)
程式(.go fle)可以有多個變數、函式(function)
程式(.go file)的名稱 不一定要等同於資料夾或包(Package)的名稱主程式(package main)
主程式(package main)代表我們可以主動 go run 執行這包程式package main
func main()
func main(){}就是執行專案時程式的進入點簡單來說,他們的階層關係為
Project(專案) > Package(程式包) > .go file(程式檔) > Function(函式)
然後他們也有公認的命名方式:
GOROOT放的是安裝的go語言、官方內建的函式庫。
例如經常使用到的fmt就是放在此
import "fmt"
GOPATH則是放別人開發的第三方套件、以及自己的程式碼
import "github.com...(別人的repository)"
這兩點應該前個章節已經提及,但因為頗為重要所以在提醒一次。
照慣例通常會把自己寫的專案及程式放入GOPATH底下的**src(source)**資料夾裡,如果有用Github會再多一層 github.com 及 account。
以上的分法都通常是在較久遠的年代,透過glide或dep來管理。自從Go 1.11 推出了gomod後,就不一定要把專案放到GOPATH底下,也可以正常運行但這邊還是偏向使用GOPATH及glide套件管理工具
使用者目錄 (C:\Users\USER 或 ~/)
- Go (GOPATH) 如果底下沒有bin/pkg/src目錄,別擔心,自己新增一個
- bin (放編譯過後的可執行檔案 二進制檔案)
- pkg (放編譯過後的library)
- src (放原始碼 Source Code)
    - [github.com](http://github.com/)
        - Jack (使用者名稱)
            -JackProject (專案名稱)
                - main.go (主程式)
        - Tom
            -TomProject
                - core (函式庫名稱)
                    - core.go
                - libs (函式庫名稱)
                    - lib.go
                - main.go
        - [gitlab.com](http://gitlab.com/)
這章節主要讓大家撰寫第一個Go Application,並告訴大家程式擺放的目錄架構、基本Go程式的知識點等,在下個章節則會帶大家進入變數的世界。